CodeCommitがカスタマーマネージドキー(CMK)での暗号化をサポートしました
こんにちは、岩城です。
本日、表題のアップデートがありましたので紹介します。
忙しい人向けまとめ
- CodeCommitはプライベートGitリポジトリをホストするソースコードのバージョン管理サービス
- リポジトリの暗号化にKMSキーが利用され、これまではAWSマネージドキーのみサポートされていた
- 今回のアップデートによりユーザーが作成するカスタマーマネージドキー(CMK)のサポートが追加となった
- マルチリージョンキーでの暗号化もサポートされている
- 既存リポジトリを後からCMKの暗号化設定に変更できる
やってみた
まずはCMKです。マルチリージョンキーを利用できるか試したいので、単一リージョンキーとマルチリージョンキーの2つを作成しました。
image
つぎに、CodeCommitで新しくリポジトリを作成します。
追加設定のAWS KMS key
のメニューにCustomer managee key
が追加されています。
事前に作成しておいた単一リージョンキーを指定して作成します。
CMKを利用したからといって、リポジトリへの操作方法が何か変わるということはありません。
もし、権限を絞っているIAMを利用している場合は、公式ドキュメントに記載のあるCMKへのアクセス権を付与してください。
では、動作確認です。検証用に起動したCloud9から操作してみました。
$ git config --global user.name "Takuro Iwaki" $ git config --global user.email iwaki.takuro@classmethod.jp $ git config --global credential.helper '!aws codecommit credential-helper $@' $ git config --global credential.UseHttpPath true $ git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/iwaki-repo Cloning into 'iwaki-repo'... warning: You appear to have cloned an empty repository. $ cd iwaki-repo $ echo "Hello World!!" > README.md $ git add -A $ git commit -m "first commit" $ git push Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), 239 bytes | 239.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 remote: Validating objects: 100% To https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/iwaki-repo * [new branch] master -> master
リポジトリを利用するユーザーにとっては、暗号化および復号化は透過的に処理されるので、CMKを利用しても操作感に影響はありません。
つぎに、単一リージョンキーからマルチリージョンキーへ変更してみます。リポジトリの設定画面から変更可能です。
単一リージョンキー同様にファイル更新した後、リポジトリにpushしてみます。
コマンド履歴は省略しますが、こちらもマルチリージョンキーに変更したからといって影響はありませんでした。
ちなみに、AWSマネージドキーへの変更も可能でした。
おわりに
PCI DSSをはじめとするコンプライアンス基準では、CMKによる暗号化を要件として定めているケースがあります。
以前のCodeCommitではCMKがサポートされていなかったため、利用を断念していた方には嬉しいアップデートではないでしょうか。
特にコンプライアンス要件がなければ、AWSマネージドキーの利用で良いと思います。
なお、CMKを作成すると7日経過しないと削除できないため、キーあたり最低7日分の料金が掛かることになります。検証時にはご注意ください。
本エントリが、どなたかのお役に立てれば幸いです。